import { request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';

/**
 * 1.上拉加载 加载下一页数据
 *  1.1 监听 滚动条触底事件
 *  1.2 判断有没有下一页数据
 *      1.2.1 当前页数 >= 总页数 说明没有下一页数据
 *            否则有下一页数据
 *            总页数 = 总条数 total / 每页容量(条数)
 *            23/10 = 2.3
 *            Math.ceil(23/10) = 3 ceil 向上取整数
 *             第一页 10条数据
 *             第二页 10条数据
 *             第三页 3条数据
 *  1.3 如果有就发网络请求 去拿下一页数据
 *      先让当前页码+1
 *  1.4 如果没有，就提是用户 没有下一页数据了
 * 2.下拉刷新
 *  2.1 开启下拉刷新功能
 *  2.2 监听下拉刷新事件
 *  2.3 对原有数据 清空
 *  2.4 发请求
 */
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      },
      {
        id:1,
        value:"销量",
        isActive:false
      },
      {
        id:2,
        value:"价格",
        isActive:false
      }
    ],
    // 商品列表数据
    goodsList:[]
  },

  /**
   * 生命周期函数--监听页面加载
   * onLoad 函数 可以获取到 url路径传递的参数
   */
  onLoad: function (options) {
    // console.log(options);
    let {cid,query} = options;
    this.ParamsObject.cid=cid || "";
    this.ParamsObject.query=query || "";
    this.getGoodsList();
    
  },
  // 传递的参数
  ParamsObject:{
    query:"",
    cid:"",
    pagenum:1,
    pagesize:10
  },
  // 总页数
  totalPages:1,
  /**
   * 获取商品列表数据
   */
  async getGoodsList(){
    let res = await request({url:'/goods/search',data:this.ParamsObject});
    console.log(res);
    // 计算总页数
    this.totalPages=Math.ceil(res.total / this.ParamsObject.pagesize);
    this.setData({
      // 上拉加载更多，需要让数组拼接起来 concat

      // goodsList:res.goods
      goodsList:[...this.data.goodsList,...res.goods]
    });
    // 手动关闭下拉刷新动画 尽管第一次没有下拉刷新，手动关闭也不会报错
    wx.stopPullDownRefresh();
    
  },
  /**
   * tabs item 点击事件
   */
  handleTabsItemClick(e){
    // 获取子组件传递过来的index下标
    let {index} = e.detail;
    // 修改源数组
    let {tabs} = this.data;
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    // 把修改后的数组在设置回去
    this.setData({
      tabs
    })

    
  },
  /**
   * 上拉 触底事件
   */
  onReachBottom(){
    // console.log("页面到底了");
    if(this.ParamsObject.pagenum >= this.totalPages){
      // console.log("没有下一页数据")
      wx.showToast({title: '亲，我是有底线的'});
    }else{
      // 有下一页数据
      // 当前页码加1
      this.ParamsObject.pagenum++;
      // 发请求
      this.getGoodsList();

    }
    
  },
  /**
   * 监听用户下拉动作
   */
  onPullDownRefresh(){
    // console.log("下拉刷新");
    // 清空原有数据
    this.setData({
      goodsList:[]
    });
    // 把页码变成第一页
    this.ParamsObject.pagenum=1;
    // 发请求
    this.getGoodsList();
    
  }


 
})